The present invention relates to servers for data delivery. Traditionel servers were designed with the tendency to be actively involved in the physical transmission of data. For applications such as video on demand or karoake on demand, deliverance of a high number of digital video streams in real time are required. The digital video stream typically include video data compressed according to ISO/IEC 11172 or ISO/IEC 13818, which are commonly known as MPEG-1 standard and MPEG-2 standard respectively.
An ATM (Asynchronous Transfer Mode)-base server system with capabilities extending beyond mere data delivery has already been proposed in the European Patent Application No. 95.200819.1.
A streaming engine for ATM communication configured as an ASIC (Application Specific Integrated Circuit) has been proposed in the international application WO 96/08896 published under PCT.
A method for recording and reproducing compressed video data according to the MEPG standard is proposed in European Patent Application EP 0 667 713 A2. In this case, the compressed video data is recorded in the disk in the special form including the scan information so that the specific compressed video data reproducing apparatus can achieve VCR functions (e.g. FF, FR).
It is an object of the present invention to improve upon the above mentioned prior art and/or to provide a server for future applications.
The present invention provides in a first aspect a method for translating a VPI/VCI of an ATM cell into an internal ID comprising the steps of:
distributing VPI/VCI entries into sections in a table according to a portion of each VPI/VCI entry;
receiving an ATM cell;
selecting a section to be searched according to the portion of a VPI/VCI of the received ATM cell;
performing a search over the selected section to find an entry corresponding to the VPI/VCI of the received ATM cell; and
outputting an internal ID corresponding to the found entry.
Preferred embodiment of the method according to the present invention are described in the dependent subclaims.
Further the present invention provides an apparatus for translating a VPI/VCI of an ATM cell into an internal ID comprising:
a table for storing VPI/VCI entries and being divided into sections;
means for distributing VPI/VCI entries into the sections in the table according to a portion of each VPI/VCI entry;
means for selecting a section to be searched according to the portion of a VPI/VCI of an received ATM cell; and
means for performing a search over the selected section to find an entry corresponding to the VPI/VCI of the received ATM cell and for outputting an internal ID corresponding to the found entry.
The present invention provides in a second aspect an apparatus for sending data to an ATM network and receiving data from the ATM network comprising:
(a) a bus interface for interfacing with a bus supporting communication between a host, a storage device and the apparatus;
(b) an ATM interface for interfacing with the ATM network;
(c) a transmission unit for transmitting outgoing data from the bus interface to the ATM interface, the transmission unit including
(1) a first RAM interface for interfacing with RAM being used as a buffer for buffering the outgoing data from the bus interface,
(2) means for segmenting the outgoing data from the buffer into outgoing ATM cells, and
(3) a traffic shaper, for controlling traffic of the outgoing ATM cells to the ATM interface in cooperation with the means for segmenting; and
(d) a reception unit for transmitting incoming data from the ATM interface to the bus interface, the reception unit including
(1) means for performing VPI/VCI filtering of incoming ATM cells,
(2) means for reassembling the incoming data using payload of the incoming ATM cells, and
(3) a second RAM interface for interfacing RAM being used as a buffer for buffering the incoming data the means for reassembling.
This apparatus according to the present invention provides for management of running applications that interact with a large number of clients and management modules distributed over a system, as well as management of the data that are delivered. The server according to the present invention provides time or processing power to run higher level management tasks, as the host is less actively involved in physical transmission of data. The hardware according to the present invention is able to deliver data in real time under different performance requirements and is well suited for such real time delivery. The streaming engine according to the present invention is able to support simultaneous communications with many clients and to facilitate the video streaming task. The server according to the present invention, also provides for interoperability, such as to serve data to any type of client. The content to be delivered, can be stored in a versatile form (i.e. raw or non formatted form) in the server according to the present invention.
The present invention provides in a third aspect a method for streaming data from a storage device comprising the steps of:
providing write addresses for a burst data to a buffer, at least a portion of the write addresses being non-contiguous;
transferring the burst data from the storage device to the buffer via a bus supporting communication between a host, the storage device and a streaming device;
writing the burst data in the buffer according to the write addresses; and
reading data from the buffer in a linear fashion.
Preferred embodiment of the method according to the present invention are described in the dependent subclaims.
Further the present invention provides a streaming device for streaming a data from a storage device comprising:
means for receiving a burst data from the storage device via a bus supporting communication between a host, the storage device and the streaming device;
means for providing write addresses for the burst data, at least a portion of the write addresses being non-contiguous; and
a buffer for storing the burst data according to the write addresses and outputting data therefrom in a linear fashion.
The present invention provides in a fourth aspect a method for delivering data comprising the steps of:
loading at least a pair of an address and a command from a host;
storing the data in a buffer;
reading the data from the buffer according to a read pointer;
executing the command if a match between the address and an address specified by the read pointer is detected; and
delivering the data read from the buffer after the execution of the command.
Further the present invention provides a device for delivering data comprising:
a command block for storing at least a pair of an address and a command loaded from a host and detecting a match between the address and an address specified by a read pointer of a buffer buffering the data;
means for executing the command in cooperation with the command block when the match is detected; and
means for delivering the data read from the buffer after the execution of the command.
The present invention provides in a fifth aspect a method for delivering data comprising the steps of:
receiving data from a network;
detecting at least a preset bit pattern in the data when the received data is transmitted to a storage device;
adding location information corresponding to a location of the preset bit pattern in the data to a list when the preset bit pattern is detected;
storing the data in the storage device; and
controlling a delivery of the data from the storage device to the network according to the location information in the list.
Preferred embodiment of this method are described in the dependent subclaims.
Further the present invention provides an apparatus for delivering data comprising:
receiving means for receiving data from a network;
a pattern detector for detecting at least a preset bit pattern in the data when the data is transmitted from the receiving means to a storage device storing the data;
a list for storing location information corresponding to a location of the preset bit pattern in the data when the preset bit pattern is detected by the pattern detector; and
means for controlling a delivery of the data from the storage device to the network according to the location information in the list.
The present invention provides in a sixth aspect a traffic shaping method comprising the steps of:
classifying one or more first streams into one or more classes, each class including one or more streams having the same bit rate characteristics;
setting a set of parameters to control the bit rate for each class; and
executing a rate pacing of each class according to the set of parameters.
Preferred embodiment of this method are described in the dependent subclaims.
Further the present invention provides a traffic shaper comprising:
means for classifying one or more first streams into one or more classes, each class including one or more streams having the same bit rate characteristics;
storage means for storing a set of parameters to control the bit rate for each class; and
means for executing a rate pacing of each class according to the set of parameters in the storage means.
Further advantages, features and details of the present invention will become clear when reading the following description, in which reference is made to the annexed drawings, in which:
FIG. 1 shows a general system architecture of an interactive communication system;
FIG. 2 shows a detail block diagram of an embodiment of the apparatus according to the present invention;
FIG. 3 shows a block diagram of the Tx address translator of FIG. 2;
FIG. 4 shows an example of the use of the address translator of FIG. 3;
FIGS. 5A, 5B, 5C show respective examples of address translation for TCP IP packetisation;
FIG. 6 shows an example of use of the Tx rate block of FIG. 2;
FIG. 7 shows the behaviour of a bit rate achieved by the traffic shaper of FIG. 2;
FIG. 8 shows a diagram for explaning the sending of stream within one cell period;
FIG. 9 shows the submission of cells for different classes;
FIG. 10 is a block diagram of an architecture for the traffic shaper of FIG. 2;
FIG. 11 shows a block diagram of the command block of FIG. 2;
FIG. 12 is a diagram for explaning the operation of the byte swapper of FIG. 2;
FIG. 13 shows a format of one ATM cell used in UNI;
FIG. 14 shows a block diagram of the VPI/VCI translator of FIG. 2;
FIG. 15 shows a block diagram of the pattern detector of FIG. 2; and
FIG. 16 shows an example of an address translator of FIG. 2.